<?php
	require_once ("LoginHandler.php");

	echo "<h1>Enhetstester</h1>";
	
	echo "<h3><hr/>Test av LoginHandler</h3>";				
	$testing = new TestAll();
	if ($testing->HandlerTest() == false){
		echo "<br/>Test av LoginHandler misslyckades!";
	} else {
		echo "<br/>Test av LoginHandler lyckades!";
	};
				
	class TestAll{
		// Funktion för att testa LoginHandler.
		public function HandlerTest(){
			// System under test.
			$sut = new LoginHandler();
			// Anropar DoLogout för att försätta användaren i utloggat läge.
			$sut->DoLogout();
			// Test av IsLoggedIn funktionen om användaren är utloggad.
			if($sut->IsLoggedIn() == true){
				echo "<br/>IsLoggedIn Test 1. Användaren bör vara utloggad.";
				return false;
			}
			// Test av DoLogin funktionen med felaktiga uppgifter.
			if($sut->DoLogin("Karl", "Gustaf") == true){
				echo "<br/>DoLogin Test 1. Användaren bör inte kunna logga in med fel uppgifter.";
				return false;
			}
			// Test av DoLogin funktionen med rätta uppgifter.
			if($sut->DoLogin("Jack", "Black") == false){
				echo "<br/>DoLogin Test 2. Användaren bör kunna logga in då uppgifterna stämmer.";
				return false;
			}
			// Test av IsLoggedIn funktionen om användaren är inloggad.
			if($sut->IsLoggedIn() == false){
				echo "<br/>IsLoggedIn Test 2. Användaren bör vara inloggad då uppgifterna stämmer.";
				return false;
			}
			// Test av IsLoggedout funktionen om användaren är utloggad.
			$sut->DoLogout();
			// Test av DoLogin funktionen med rätta användarnamn och fel lösenord.
			if($sut->DoLogin("Jack", "Hack") == true){
				echo "<br/>DoLogin Test 3. Användaren bör inte kunna logga in då lösenordet är fel.";
				return false;
			}
			if($sut->IsLoggedIn() == true){
				echo "<br/>Test av IsLoggedout. Användaren bör nu loggas ut.";
				return false;
			}
			// Alla tester lyckades.			
			return true;
		}
	}
?>